The present invention relates to providing information about characteristics associated with a network. More particularly, the present invention provides methods and apparatus for providing characteristics to a network node responsible for selecting a content server. The frames of reference for the present invention are the content servers or content routing agents that can provide information that a client requests.
A network user can often retrieve identical content from a number of mirror sites. Content is often distributed onto mirroring sites across a network such as the Internet in order to give users optimal access to the information. A number of techniques have been used to select a server that can provide the content to the user. However, as described further below, these conventional techniques may fail to select a server that can best provide the content to the user. A server that can best provide content to a client may transmit over a route that has the best available combination of latency, bandwidth and reliability and can be referred to as a content server or a content routing agent.
One method for selecting a content server gives much of the discretion to the user. Users wishing to download a piece of software may be directed to select a server location closest to their own location. Several problems arise out of this technique. Geographic proximity may not be equivalent to network proximity. Two cities may neighbor each other geographically, but the cities may not have a direct network connection. Network traffic may flow through a geographically distant third city. Alternatively, the network lines connecting the two neighboring cities may have limited bandwidth, while the lines connected to the distant third city may have bandwidth to spare.
Some techniques for selecting a server employ systems at a primary domain name server. When a user requests particular content, these systems interact with the primary domain name server to identify a content server. The system identifies the content server and then returns the IP address of that server as part of its DNS reply. These systems may select a server from a list of identical servers randomly. This works to prevent any particular content server from carrying a disproportionate load of network traffic. This system may balance server load across a list of content servers, but it does not assure that the user receives service from a content server that would provide the optimal response. In fact, it does not even prevent the user from receiving service from a content server that would provide the slowest response. This system may in fact worsen loads at already congested content servers. The random number generator for the system may exhibit non-random characteristics, and still direct a disproportionate amount of traffic towards particular content servers.
Another technique for increasing the efficiency with which data requests are serviced is described in commonly assigned, copending U.S. patent application Ser. No. 09/606,418 with a title WIDE AREA LOAD BALANCING OF WEB TRAFFIC as of its Jun. 28, 2000 date of filing, the entirety of which is incorporated herein by reference for all purposes. The copending application describes aspects of the Boomerang process where in a specific embodiment, each site with an IP address corresponding to a domain name is requested to respond to a Domain Name System (DNS) query. The first server to complete a response through the network lines is deemed to be the optimal server. The Boomerang process typically identifies the server with the lowest network delay between itself and the client's local DNS server at the moment of transmission.
This presents an accurate depiction of the round trip time at the moment of transmission. However, other factors, such as drop rate and available bandwidth, may not be adequately considered by a system using the Boomerang process. A content server may be the first to successfully transmit a response message through the network even though the drop rate was undesirably high. Alternatively, a content server may be the first to respond even though the route traversed was near its maximum capacity.
Each of the currently available techniques for selecting a server to provide content to a user in the best possible manner has its own disadvantages with regard to at least some of the desirable characteristics of systems for selecting a content server. It is therefore desirable to provide a system for selecting a content server that exhibits desirable characteristics as well or better than the technologies discussed above.